package function;

import java.io.File;
import java.io.IOException;
import java.util.Scanner;

public class DropDatabase {
    // delete database 数据库名称
    public static void deleteDB(String dbname) throws IOException {
        File file = new File("./mydatabase/" + dbname);
        if (!file.exists()) {
            System.out.println("database " + dbname + " does not exist");
            return;
        }

        // 若数据库中有表存在，则提示用户
        if (file.listFiles().length > 0) {
            System.out.println("数据库 " + dbname + " 中有表存在，是否继续删除(Y/N)");

            Scanner scanner = new Scanner(System.in);
            String answer = scanner.next();
            if (answer.equalsIgnoreCase("Y")) {
                // 删除数据库中的所有表
                deleteFiles(file);
                file.delete(); // 删除数据库文件夹
                System.out.println("数据库 " + dbname + " 删除成功");
            } else {
                System.out.println("数据库 " + dbname + " 删除操作已取消");
            }
        } else {
            // 若数据库为空，直接删除
            file.delete();
            System.out.println("数据库 " + dbname + " 删除成功");
        }
    }

    // 删除文件夹中的所有文件
    private static void deleteFiles(File folder) {
        File[] files = folder.listFiles();
        if (files != null) {
            for (File file : files) {
                if (file.isDirectory()) {
                    // 递归删除子文件夹
                    deleteFiles(file);
                }
                file.delete(); // 删除文件或空文件夹
            }
        }
    }
}
